part of 'widget.dart';

class _AppWloc extends StatelessWloc<AppWidget> {
  late final bloc.AppBloc _bloc;

  @override
  void initState() {
    super.initState();

    core_di.registerAuthBloc();
    core_di.registerLearningContentBloc();
    core_di.registerRootNavigatorBloc();
    core_di.registerSettingsBloc();

    _bloc = bloc.AppBloc(
      authBloc: core_di.sl(),
      learningContentBloc: core_di.sl(),
      rootNavigatorBloc: core_di.sl(),
      settingsBloc: core_di.sl(),
      initializeApp: di.sl(),
      finalizeApp: di.sl(),
    );

    _bloc.initialize();
  }

  @override
  void dispose() {
    _bloc.close();

    core_di.unregisterAuthBloc();
    core_di.unregisterLearningContentBloc();
    core_di.unregisterRootNavigatorBloc();
    core_di.unregisterSettingsBloc();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return _AppWidgetView();
  }
}
